package club.easin.utils;

import javax.servlet.http.HttpServletRequest;
import java.net.InetAddress;
import java.net.UnknownHostException;

public class IpUtil {

    public static String getIpAddr(HttpServletRequest request){
        String ipAddress=null;
        try {
            ipAddress=request.getHeader("x-forwarded-for");
            if(ipAddress==null||ipAddress.length()==0||"unknown".equalsIgnoreCase(ipAddress)){
                ipAddress=request.getHeader("Proxy-Client-IP");
            }
            if(ipAddress==null||ipAddress.length()==0||"unknown".equalsIgnoreCase(ipAddress)){
                ipAddress=request.getHeader("WL-Proxy-Client-IP");
            }
            if(ipAddress==null||ipAddress.length()==0||"unknown".equalsIgnoreCase(ipAddress)){
               ipAddress=request.getRemoteAddr();
               if(ipAddress.equals("127.0.0.1")){
                   InetAddress inetAddress=null;
                   try {
                       inetAddress=InetAddress.getLocalHost();
                   }catch (UnknownHostException e){
                       e.printStackTrace();
                   }
                   ipAddress=inetAddress.getHostAddress();
               }
            }

            if(ipAddress!=null&&ipAddress.length()>15){
                if(ipAddress.indexOf(",")>0){
                    ipAddress=ipAddress.substring(0,ipAddress.indexOf(","));
                }
            }

        }catch (Exception e){
            e.printStackTrace();
            ipAddress="";
        }

        return ipAddress;

    }
}
